/**
 * 学术印象 - 毕业论文写作服务网站脚本
 * 作者：AI助手
 * 版本：1.0
 * 日期：2025年4月
 */

// 等待文档加载完成
document.addEventListener('DOMContentLoaded', function() {
    'use strict';
    
    // 获取DOM元素
    const menuToggle = document.querySelector('.menu-toggle');
    const mainNav = document.querySelector('.main-nav');
    const header = document.querySelector('.header');
    const backToTop = document.querySelector('.back-to-top');
    const navLinks = document.querySelectorAll('.main-nav ul li a');
    const inquiryForm = document.getElementById('inquiry-form');
    
    // 移动端菜单切换
    if (menuToggle) {
        menuToggle.addEventListener('click', function() {
            this.classList.toggle('active');
            mainNav.classList.toggle('active');
        });
    }
    
    // 导航链接点击事件
    navLinks.forEach(link => {
        link.addEventListener('click', function(e) {
            // 关闭移动端菜单
            if (mainNav.classList.contains('active')) {
                menuToggle.classList.remove('active');
                mainNav.classList.remove('active');
            }
            
            // 添加active类到当前点击的链接
            navLinks.forEach(item => item.classList.remove('active'));
            this.classList.add('active');
            
            // 如果是锚点链接，确保平滑滚动
            if (this.getAttribute('href').startsWith('#')) {
                const targetId = this.getAttribute('href');
                if (targetId !== '#') {
                    e.preventDefault();
                    const targetElement = document.querySelector(targetId);
                    if (targetElement) {
                        const headerHeight = header.offsetHeight;
                        const targetPosition = targetElement.offsetTop - headerHeight;
                        
                        window.scrollTo({
                            top: targetPosition,
                            behavior: 'smooth'
                        });
                    }
                }
            }
        });
    });
    
    // 滚动事件处理
    window.addEventListener('scroll', function() {
        // 顶部导航栏样式变化
        if (window.scrollY > 100) {
            header.style.padding = '15px 0';
            header.style.boxShadow = '0 2px 10px rgba(0, 0, 0, 0.1)';
        } else {
            header.style.padding = '20px 0';
            header.style.boxShadow = 'none';
        }
        
        // 返回顶部按钮显示控制
        if (window.scrollY > 500) {
            backToTop.classList.add('active');
        } else {
            backToTop.classList.remove('active');
        }
        
        // 导航高亮当前区域
        const scrollPosition = window.scrollY + header.offsetHeight + 20;
        
        document.querySelectorAll('section[id]').forEach(section => {
            const sectionTop = section.offsetTop;
            const sectionHeight = section.offsetHeight;
            const sectionId = section.getAttribute('id');
            
            if (scrollPosition >= sectionTop && scrollPosition < sectionTop + sectionHeight) {
                navLinks.forEach(link => {
                    link.classList.remove('active');
                    if (link.getAttribute('href') === '#' + sectionId) {
                        link.classList.add('active');
                    }
                });
            }
        });
    });
    
    // 返回顶部按钮点击事件
    if (backToTop) {
        backToTop.addEventListener('click', function(e) {
            e.preventDefault();
            window.scrollTo({
                top: 0,
                behavior: 'smooth'
            });
        });
    }
    
    // 表单提交事件处理
    if (inquiryForm) {
        inquiryForm.addEventListener('submit', function(e) {
            e.preventDefault();
            
            // 获取表单数据
            const formData = {
                name: document.getElementById('name').value,
                phone: document.getElementById('phone').value,
                email: document.getElementById('email').value,
                serviceType: document.getElementById('service-type').value,
                message: document.getElementById('message').value
            };
            
            // 表单验证
            let isValid = true;
            let errorMessage = '';
            
            if (!formData.name || formData.name.trim() === '') {
                isValid = false;
                errorMessage += '请输入您的姓名\n';
            }
            
            if (!formData.phone || formData.phone.trim() === '') {
                isValid = false;
                errorMessage += '请输入联系电话\n';
            } else if (!validatePhone(formData.phone)) {
                isValid = false;
                errorMessage += '请输入有效的电话号码\n';
            }
            
            if (formData.email && formData.email.trim() !== '' && !validateEmail(formData.email)) {
                isValid = false;
                errorMessage += '请输入有效的邮箱地址\n';
            }
            
            if (!formData.serviceType || formData.serviceType === '') {
                isValid = false;
                errorMessage += '请选择服务类型\n';
            }
            
            if (!formData.message || formData.message.trim() === '') {
                isValid = false;
                errorMessage += '请输入详细需求描述\n';
            }
            
            // 如果表单验证通过
            if (isValid) {
                // 在这里可以添加将表单数据发送到服务器的代码
                // 例如使用 fetch API 或 XMLHttpRequest
                
                // 本示例仅弹出消息表示成功
                alert('感谢您的咨询！我们会尽快与您联系。');
                inquiryForm.reset(); // 重置表单
            } else {
                // 显示错误信息
                alert('请更正以下错误：\n' + errorMessage);
            }
        });
    }
    
    // 订阅表单处理
    const subscribeForm = document.querySelector('.subscribe-form');
    if (subscribeForm) {
        subscribeForm.addEventListener('submit', function(e) {
            e.preventDefault();
            
            const email = this.querySelector('input[type="email"]').value;
            
            if (!email || email.trim() === '') {
                alert('请输入您的邮箱地址');
                return;
            }
            
            if (!validateEmail(email)) {
                alert('请输入有效的邮箱地址');
                return;
            }
            
            // 在这里可以添加将邮箱发送到服务器的代码
            
            // 本示例仅弹出消息表示成功
            alert('订阅成功！感谢您的关注。');
            this.reset(); // 重置表单
        });
    }
    
    // 电话号码验证函数
    function validatePhone(phone) {
        // 中国大陆手机号码格式验证
        const phoneRegex = /^1[3-9]\d{9}$/;
        return phoneRegex.test(phone);
    }
    
    // 邮箱验证函数
    function validateEmail(email) {
        const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
        return emailRegex.test(email);
    }
    
    // 添加图片加载错误处理
    document.querySelectorAll('img').forEach(img => {
        img.addEventListener('error', function() {
            this.src = 'images/placeholder.jpg'; // 替换为默认占位图片
        });
    });
    
    // 为联系方式添加点击复制功能
    document.querySelectorAll('.contact-item p').forEach(item => {
        item.addEventListener('click', function() {
            const text = this.textContent;
            copyToClipboard(text);
            
            // 显示复制成功提示
            const originalText = this.textContent;
            this.textContent = '已复制!';
            
            setTimeout(() => {
                this.textContent = originalText;
            }, 1500);
        });
        
        // 添加指示鼠标悬停样式
        item.style.cursor = 'pointer';
        item.title = '点击复制';
    });
    
    // 复制文本到剪贴板函数
    function copyToClipboard(text) {
        // 创建临时文本区域
        const textarea = document.createElement('textarea');
        textarea.value = text;
        document.body.appendChild(textarea);
        
        // 选择并复制文本
        textarea.select();
        document.execCommand('copy');
        
        // 移除临时文本区域
        document.body.removeChild(textarea);
    }
});

// 创建一个简单的图片延迟加载函数
function lazyLoadImages() {
    const lazyImages = document.querySelectorAll('[data-src]');
    
    if ('IntersectionObserver' in window) {
        const imageObserver = new IntersectionObserver((entries, observer) => {
            entries.forEach(entry => {
                if (entry.isIntersecting) {
                    const img = entry.target;
                    img.src = img.dataset.src;
                    img.removeAttribute('data-src');
                    imageObserver.unobserve(img);
                }
            });
        });
        
        lazyImages.forEach(img => {
            imageObserver.observe(img);
        });
    } else {
        // 回退到简单的延迟加载方法
        let lazyLoadThrottleTimeout;
        
        function lazyLoad() {
            if (lazyLoadThrottleTimeout) {
                clearTimeout(lazyLoadThrottleTimeout);
            }
            
            lazyLoadThrottleTimeout = setTimeout(function() {
                const scrollTop = window.pageYOffset;
                
                lazyImages.fo
                
            rEach(img => {
                    if (img.offsetTop < window.innerHeight + scrollTop) {
                        img.src = img.dataset.src;
                        img.removeAttribute('data-src');
                    }
                });
                
                if (lazyImages.length === 0) {
                    document.removeEventListener('scroll', lazyLoad);
                    window.removeEventListener('resize', lazyLoad);
                    window.removeEventListener('orientationChange', lazyLoad);
                }
            }, 20);
        }
        
        document.addEventListener('scroll', lazyLoad);
        window.addEventListener('resize', lazyLoad);
        window.addEventListener('orientationChange', lazyLoad);
    }
}

// 页面加载完成后初始化延迟加载
window.addEventListener('load', lazyLoadImages); 